home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / math / Headers / ExprArray.h < prev    next >
Text File  |  1999-07-13  |  1KB  |  48 lines

  1. #ifndef _ExprArray_H
  2. #define _ExprArray_H
  3.  
  4. #define MAX_EXPR_ARRAY_SIZE     15
  5.  
  6.  
  7.  
  8.  
  9. class ArgList;
  10. class ExpressionDict;
  11. class Expression;
  12.  
  13. /* If an arglist has as an array of values (ex., ad1, ad2, ad3, ad4...), this class
  14. helps extract them and evaluate them easily.  */
  15.  
  16. class ExprArray {
  17.  
  18.  
  19.     public:    
  20.                             ExprArray();
  21.         virtual                ~ExprArray();
  22.         
  23.         // Returns how many exrs are compiled/ready to be evaluated
  24.         inline long            Count()    const                                { return mNumExprs;        }    
  25.         
  26.         // Adds the indentifiers and their corresponding addresses to the dict
  27.         //void                LinkVars( long inID, ExpressionDict& ioDict );
  28.         
  29.         // Extracts a sequence of args from an arglist (ie., and array), and compiles them (with 
  30.         // the given link dictionary).  If an arglist was known to contain ad1, ad2, ad3, ad4...,
  31.         // we call: Compile( args, 'ad', theDict );
  32.         // Post: Each identifier/element is added to ioDict.
  33.         void                Compile( const ArgList& inArgs, long inID, ExpressionDict& ioDict );
  34.  
  35.         // Each loaded expression is evaluated and placed in mVals
  36.         void                Evaluate();
  37.  
  38.         float                mVals[ MAX_EXPR_ARRAY_SIZE ];
  39.  
  40.     protected:
  41.         Expression*            mExprs;
  42.         long                mNumExprs;        
  43. };
  44.  
  45.  
  46. #endif
  47.  
  48.